/*
mixins的中文意思是混入，就是在类中混入其他功能。

在Dart中可以使用mixins实现类似多继承的功能


因为mixins使用的条件，随着Dart版本一直在变，这里讲的是Dart2.x中使用mixins的条件：

  1、作为mixins的类只能继承自Object，不能继承其他类
  2、作为mixins的类不能有构造函数
  3、一个类可以mixins多个mixins类
  4、mixins绝不是继承，也不是接口，而是一种全新的特性
*/

class Person {
  late Object name;
  late num age;
  Person(this.name, this.age);
  printInfo() {
    print('person类---${this.name}---${this.age}');
  }
}

mixin A {
  String info = 'this is A';
  void printA() {
    print('A');
  }
}

mixin B {
  void printB() {
    print('B');
  }
}

class C extends Person with A, B {
  C(String name, num age) : super(name, age);
}

void main() {
  var c = new C('李白', 11);
  c.printA();
  c.printB();
  c.printInfo();
  print(c.info);
}
